package com.gking.centerSystem.controller;


import com.gking.centerSystem.AOP.annotationUtil.configFunctionSwitch.ConfigFunctionSwitch;
import com.gking.centerSystem.common.Result;
import com.gking.centerSystem.entity.RootSystem;
import com.gking.centerSystem.entity.Sort;
import com.gking.centerSystem.service.RootSystem.RootSystemService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@Slf4j
@RestController
@RequestMapping("/rootSystem")
public class RootSystemController {

    @Resource
    private RootSystemService rootSystemService;


    /**
     * 添加根系统
     *
     * @param system 系统信息
     * @return s
     */
    @ConfigFunctionSwitch(code = "OPEN_ROOT_SYSTEM")
    @PostMapping("/addRootSystem")
    public Result<String> addRootSystem(@RequestBody RootSystem system) {
        return rootSystemService.addRootSystem(system.getSystemName(), system.getSystemCode());
    }

    /**
     * 获取所有根系统列表
     *
     * @return l
     */
    @GetMapping("/getRootSystem")
    public Result<List<RootSystem>> getRootSystem() {
        return rootSystemService.getRootSystem();
    }

    /**
     * 批量启用或禁用系统
     *
     * @param ids    系统id
     * @param enable 是否启用 0 启用 1 禁用
     * @return s
     */
    @PostMapping("/enableSystem")
    public Result<String> enableSystem(@RequestBody List<Integer> ids, @RequestParam Integer enable) {
        return rootSystemService.enableSystem(ids, enable);
    }

    /**
     * 为所有分类添加根系统编码 (对原来的旧数据进行补充)
     *
     * @param sort 分类信息
     * @return s
     */
    @PostMapping("/sortAddRootSystemCode")
    public Result<String> sortAddRootSystemCode(@RequestBody Sort sort) {
        return rootSystemService.sortAddRootSystemCode(sort.getId(), sort.getSystemCode());
    }


}
